package com.gxa.autoparts.core.service;

import com.github.pagehelper.PageInfo;

import java.io.Serializable;
import java.util.List;

public interface BaseService<T> {

    /**
     * 根据id查询目标类型的方法
     * @param id 标识列,为了通用采用Serializable 类型(包括Integer,Long)
     * @return
     */
    T selectById(Serializable id);

    /**
     * 模糊且分页
     * @param page
     * @param size
     * @param t
     * @return
     */
    PageInfo<T> selectByPage(Integer page, Integer size,T... t) throws IllegalAccessException;

    /**
     * 根据t所带特征值查询
     * @param t
     * @return
     */
    List<T> select(T t) ;

    /**
     * 全查询
     * @return
     */
    List<T> selectAll();

    /**
     * 根据id修改特征值得方法
     * @param t
     */
    Integer updateById(T t);

    /**
     * 根据id删除
     * @param id
     */
    Integer deleteById(Serializable id);

    /**
     * 添加
     * @param t
     */
    T insert(T t);
}
